package com.lhq.tag_tales.common;

/**
 * 错误码枚举类，用于定义系统中可能遇到的各种错误状态
 */
public enum ErrorCodeEnum {
    // 成功状态
    SUCCESS(0, "ok", "成功"),
    // 请求参数错误
    PARAMS_ERROR(40000, "请求参数错误", ""),
    // 请求数据为空
    NULL_ERROR(40001, "请求数据为空", ""),
    //数据已存在
    DUPLICATE_ERROR(40002, "数据已存在", ""),
    // 无权限访问
    NO_AUTH(40100, "无权限", ""),
    // 未登录
    NO_LOGIN(40101, "未登录", ""),
    // 系统内部异常
    DEFAULT_ERROR(50000, "系统内部异常", "");

    /**
     * 错误码
     */
    private final int code;
    /**
     * 错误信息
     */
    private final String message;
    /**
     * 描述
     */
    private final String description;

    /**
     * 构造函数，初始化错误码、错误信息和描述
     * @param code      错误码
     * @param message   错误信息
     * @param description 描述
     */
    ErrorCodeEnum(int code, String message, String description) {
        this.code = code;
        this.message = message;
        this.description = description;
    }

    /**
     * 获取错误信息
     * @return 错误信息
     */
    public String getMessage(){
        return message;
    }

    /**
     * 获取错误码
     *
     * @return 错误码
     */
    public int getCode() {
        return code;
    }

    /**
     * 获取描述
     * @return 描述
     */
    public String getDescription() {
        return description;
    }
}
